iT邦幫忙

2021 iThome 鐵人賽

DAY 3
2
AI & Data

時間序列分析與預測方法大全系列 第 3

[Day3] 經典時間序列預測方法盤點

  • 分享至 

  • xImage
  •  

第一篇記錄了時間序列屬性,將趨勢、季節性等元素拆解、分別畫出圖表;
第二篇則介紹時間序列轉換方法,透過縮放,讓資料分布更趨於常態,讓我們更好觀察時序的類型。
從第三篇開始,我們會盤點時間序列預測方法,例如經典的統計模型:移動平均、ARIMA,再到最常見的機器學習迴歸模型、更適合處理多維特徵時間序列的遞迴神經網絡等等。

我們將會介紹的統計模型有以下:

Autoregressive models (AR)

  • 公式:https://chart.googleapis.com/chart?cht=tx&chl=x_%7Bt%7D%20%3D%20b_%7B0%7D%20%2B%20b_%7B1%7Dx_%7Bt-1%7D%20%2B%20%5Cvarepsilon%20_%7Bt%7D

  • 邏輯:假設過去多個時間點 與 未來時間點的值呈線性關係,使用過去多個時間點的線性組合對未來時間點做預測。

Vector Autoregression model (VAR)

  • 公式: VAR_formula
  • 邏輯:向量自迴歸模型。從只能使用一個變量的 Autoregressive model 擴充成多變量,常於多變數時間序列。

Moving Average (MA)

Simple Moving Average

  • 公式:https://chart.googleapis.com/chart?cht=tx&chl=%5Cfrac%7B(A_%7B1%7D%20%2B%20A_%7B2%7D%20%2B%20A_%7B3%7D%20%2B%20...%20%2B%20A_%7Bn%7D)%7D%7Bn%7D

  • 邏輯:
    移動平均會比整體平均更能反映現況。

Weighted Moving Average

  • 公式:https://chart.googleapis.com/chart?cht=tx&chl=(A_%7B1%7D%20*%20W_%7B1%7D%20%2B%20A_%7B2%7D%20*%20W_%7B2%7D%20%2B%20A_%7B3%7D%20*%20W_%7B3%7D%20%2B%20...%20%2B%20A_%7Bn%7D%20*%20W_%7Bn%7D)

  • 邏輯:
    簡單移動平均法的延伸,可在公式中對不同時間點設定權重。

Exponential Smoothing (ES)

  • 公式:https://chart.googleapis.com/chart?cht=tx&chl=EMA_%7Bt%7D%20%3D%20%5Cbegin%7Bcases%7D%20x_%7B0%7D%20%26%20%5Ctext%7B%20if%20%7D%20t%3D0%20%5C%5C%20%20%5Calpha%20x_%7Bt%7D%20%2B%20(1-%20%5Calpha%20)EMA_%7Bt-1%7D%20%26%20%5Ctext%7B%20if%20%7D%20t%20%3E%200%20%5Cend%7Bcases%7D

  • 邏輯:
    對使用指數函數 (exponential function),越久以前的時間點,權重會呈指數衰減。

Autoregressive integrated moving average (ARIMA)

  • 公式: ARMA_formula

  • 邏輯:整合移動平均自回歸模型,從 ARMA 演變而來,多了 I(d) 先計算 differencing 多次讓時序平穩化後,使用自迴歸 (AR) 及移動平均 (MA) 的線性組合進行時序預測;其中的 d 是指 differencing 次數。

Holt's Model

Holt's Linear Trend Model

  • 公式:
    • 預測方程: https://chart.googleapis.com/chart?cht=tx&chl=%5Chat%7By%7D_%7Bt%2Bh%7Ct%7D%20%3D%20l_%7Bt%7D%20%2B%20hb_%7Bt%7D
      • 計算「level」的方程: https://chart.googleapis.com/chart?cht=tx&chl=l_%7By%7D%20%3D%20%5Calpha%20y_%7Bt%7D%20%2B%20(1-%20%5Calpha%20)(l_%7Bt-1%7D%20%2B%20b_%7Bt-1%7D)
      • 計算「Trend」的方程: https://chart.googleapis.com/chart?cht=tx&chl=b_%7Bt%7D%20%3D%20%5Cbeta%20(l_%7Bt%7D%20-%20l_%7Bt-1%7D)%20%2B%20(1-%20%5Cbeta)b_%7Bt-1%7D
  • 邏輯:
    使用兩個 ES 分別計算 Level & Trend,再做線性組合。

Holt-Winters model

  • 公式:
    • 預測方程 (Additive): https://chart.googleapis.com/chart?cht=tx&chl=%5Chat%7By%7D_%7Bt%2Bh%7Ct%7D%20%3D%20l_%7Bt%7D%2Bhb_%7Bt%7D%2Bs_%7Bt%2Bh-mk%7D
      • 計算「level」的方程: https://chart.googleapis.com/chart?cht=tx&chl=l_%7Bt%7D%20%3D%20%5Calpha%20(y_%7Bt%7D-s_%7Bt-m%7D)%20%2B%20(1%20-%20%5Calpha)(l_%7Bt-1%7D%20%2B%20b_%7Bt-1%7D)
      • 計算「Trend」的方程: https://chart.googleapis.com/chart?cht=tx&chl=b_%7Bt%7D%20%3D%20%5Cbeta(l_%7Bt%7D%20-%20l_%7Bt-1%7D)%2B(1-%20%5Cbeta)b_%7Bt-1%7D
      • 計算「Seasonality」的方程: https://chart.googleapis.com/chart?cht=tx&chl=s_%7Bt%7D%20%3D%20%5Cgamma%20(y_%7Bt%7D-l_%7Bt-1%7D-b_%7Bt-1%7D)%2B(1-%5Cgamma)s_%7Bt-m%7D
  • 邏輯:
    在 Holt's Linear Trend Model 的基礎上,多加一個 ES 計算 Seasonality,並延續第一篇介紹過的類型,分為 Additive 和 Multiplicative。

上一篇
[Day2] 時間序列資料轉換方法
下一篇
[Day4] 時間序列預測界的 OG:白話解釋 ARIMA 組成模型及步驟
系列文
時間序列分析與預測方法大全13
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言